package com.smart.manager.system.entities.body;

import com.smart.common.entities.core.BaseSearch;
import com.smart.manager.system.entities.enums.AccountType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;


/**
 * rsystem模型
 *
 * @author xiaxuqiu
 * @date 2023/03/26
 */
public class RSystemRole {

    @Data
    @EqualsAndHashCode(callSuper = true)
    @ApiModel("RSystemRole1")
    public static class SearchBody extends BaseSearch {


        @ApiModelProperty("角色代码")
        private String code;


        @ApiModelProperty("角色名称")
        private String name;
 
    }


    @Data
    @ApiModel("RSystemRole2")
    public static class EditBody  implements Serializable {


        /**
         * 角色代码
         */

        @ApiModelProperty("角色代码")
        @Length(max= 30,message="角色代码 不能超过30个字符")
        @NotBlank(message = " 角色代码  不能为空")
        private String code;
        /**
         * 角色名称
         */

        @ApiModelProperty("角色名称")
        @Length(max= 30,message="角色名称 不能超过30个字符")
        @NotBlank(message = " 角色名称  不能为空")
        private String name;

        /**
         * 包含的菜单ID集合
         */
        @ApiModelProperty("角色菜单ID集合")
        @NotNull(message = "角色菜单ID集合不能为空")
        private List<Long> menuIds;
        /**
         * 权限表达式集合
         */

        @ApiModelProperty("权限表达式集合")
        @NotNull(message = "角色功能不能为空")
        private List<String> apiTokens;
        /**
         * 角色描述
         */

        @ApiModelProperty("角色描述")
        @Length(max= 200,message="角色描述 不能超过20个字符")
        private String description;


        @ApiModelProperty("角色适用账号类型")
        @NotNull(message = "适用账号类型 不能为空")
        private AccountType accountType ;

    }


}
